/**
 * 文件名：@TranslateValueParser.java <br/>
 * 包名：cn.efunbox.afw.core.mvc.result <br/>
 * 项目名：afw-core <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.core.mvc.result;

import java.util.Locale;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import cn.efunbox.afw.core.util.MessageUtil;

/**
 * 类名：TranslateValueParser  <br />
 *
 * 功能：
 *
 * @author xtwin <br />
 * 创建时间：2015年12月3日 下午6:04:37  <br />
 * @version 2015年12月3日
 */
public class TranslateValueParser extends AbstractNestedValueParser {
	
	// 日志记录
	private static final Log logger = LogFactory.getLog(TranslateValueParser.class);

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2015年12月3日 下午6:04:48<br/>
	 * 
	 * @param root
	 * @param property
	 * @param value
	 * @param params
	 * @return <br/>
	 * @see cn.efunbox.afw.core.mvc.result.AbstractNestedValueParser#doParse(java.lang.Object, java.lang.String, java.lang.Object, java.util.Map)
	 */
	@Override
	protected Object doParse(Object root, String property, Object value, Map<String, Object> params) {
		String prefix = null;
		
		Locale locale = null;
		if (null != params) {
			prefix = (String) params.get("prefix");
			
			locale = (Locale) params.get("local");
		}
		
		if (logger.isDebugEnabled()) {
			logger.debug("prefix is : " + prefix);
			logger.debug("locale is : " + locale);
		}
		
		return MessageUtil.getMessage((null == prefix ? "" : prefix) + value, null, null == locale ? Locale.SIMPLIFIED_CHINESE : locale, String.valueOf(value));
	}
}
